Computer systems in use today may be very complex and are typically monitored using a large number of measurable metrics. If a computer system is not functioning as expected, an administrator may be called in to diagnose and solve the problem. A variety of problems can be solved by simple techniques, such as rebooting, but many cannot. Understanding and documenting the likely causes of such problems is difficult, because they often emerge from the behavior of a collection of many metrics, such as CPU load, disk I/O rates, etc. Therefore, simple “rules of thumb” focusing on a single metric are usually misleading. Today there is no systematic way to leverage past diagnostic efforts when a problem arises, even though such efforts may be lucrative for maintaining a computer system.